package cn.tansanqinger.dao.sql.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import cn.tansanqinger.dao.sql.IMenuSqlDao;
import cn.tansanqinger.pojo.Knowledge;
import cn.tansanqinger.pojo.Menu;

@Repository
public class MenuSqlDaoImpl {
	
	@Autowired
	private IMenuSqlDao menuSqlDao;
	
	/**
	 * 查询菜单中所有数据
	 * @return
	 */
	public List<Menu> selectMenuAll() {
		try {
			return menuSqlDao.selectList(null);
		} catch (Exception e) {}
		return null;
	}
	
	/**
	 * 查询一级菜单中的数据
	 * @return
	 */
	public List<Menu> selectFirstMenuAll() {
		try {
			QueryWrapper<Menu> queryWrapper = new QueryWrapper<Menu>();
			queryWrapper.lambda().eq(Menu::getParentId, 0);
			return menuSqlDao.selectList(queryWrapper);
		} catch (Exception e) {}
		return null;
	}
	
	/**
	 * 通过parentId来查询相对应的菜单信息
	 * @param parentId
	 * @return
	 */
	public List<Menu> selectNextMenuAll(String parentId) {
		try {
			QueryWrapper<Menu> queryWrapper = new QueryWrapper<Menu>();
			queryWrapper.lambda().eq(Menu::getParentId, parentId);
			return menuSqlDao.selectList(queryWrapper);
		} catch (Exception e) {}
		return null;
	}
	
	/**
	 * 通过menuId查询单一信息
	 * @param menuId
	 * @return
	 */
	public Menu getMenuById(Integer menuId) {
		try {
			QueryWrapper<Menu> queryWrapper = new QueryWrapper<Menu>();
			queryWrapper.lambda().eq(Menu::getMenuId, menuId);
			return menuSqlDao.selectOne(queryWrapper);
		} catch (Exception e) {}
		return null;
	}
	
	/**
	 * 删除菜单
	 * @param menuId
	 */
	public void deleteMenuById(Integer menuId) {
		try {
			QueryWrapper<Menu> queryWrapper = new QueryWrapper<Menu>();
			queryWrapper.lambda().eq(Menu::getMenuId, menuId);
			menuSqlDao.delete(queryWrapper);
		} catch (Exception e) {}
	}
	
	/**
	 * 修改一级菜单图标
	 * @param menuId
	 * @param menguIcon
	 */
	public void updataMenuIcon(Menu menu) {
		menuSqlDao.updateById(menu);
	}
	
	/**
	 * 修改菜单信息
	 * @param menu
	 */
	public void updateMenuAll(Menu menu) {
		try {
			menuSqlDao.updateById(menu);
		} catch (Exception e) {
		}
	}
	
	/**
	 * 保存数据
	 * @param menu
	 */
	public void saveMenu(Menu menu) {
		try {
			menuSqlDao.insert(menu);
		} catch (Exception e) {
		}
	}
	
	/**
	 * 查询编号
	 * @param parentId
	 * @return
	 */
	public int selectIdCount(int parentId) {
		QueryWrapper<Menu> queryWrapper = new QueryWrapper<Menu>();
		queryWrapper.lambda().eq(Menu::getParentId, parentId);
		queryWrapper.orderByDesc("menu_id").last("limit 1");
		Menu object= menuSqlDao.selectOne(queryWrapper);
		return object==null?0:object.getMenuId();
	}
}
